/*
 Class:     FileOperations
 Author:    Lusana A
 Desc:      Takes care of filesystem operations when matched rules are to be executed
*/

#include <boost/filesystem/operations.hpp>
#include <string>
#include <vector>

namespace bf = boost::filesystem;
using namespace std;

#ifndef FILEOPERATIONS_H
#define FILEOPERATIONS_H

namespace Org
{
    class FileOperations
    {
    public:
        FileOperations();

        static bool copy_dir(const bf::path &, const bf::path &, const bf::path &);
        static bool move_dir(const bf::path &, const bf::path &, const bf::path &);
        static bool del_dir(const bf::path &);
        static bool del_file(const bf::path &);
        static bool rename(const bf::path &from_path, const bf::path &to_path);
        static bf::path get_new_path(const bf::path &, const bf::path &, const bf::path &);
        static void tokenise(const string&, vector<string> &, const string&);
    };
}

#endif // FILEOPERATIONS_H
